I have had great success using Python in Mathematica (for some computations for which there are very well optimised Python packages but not for Mathematica). I have some Mathematica functions that are calls of Python functions, similar to the example given in Applications section of this page: https://reference.wolfram.com/language/ref/ExternalEvaluate.html.
I would now like to run these functions within a ParallelDo function, unfortunately it isn't working. Here is a MWE and the output:
session = StartExternalSession["Python-NumPy"];
ExternalEvaluate[session, "def double(x):
return x*2"];
doublePython[arg_] := ExternalEvaluate[session, "double(" <> ToString[arg] <> ")"]
Do[Pause[1]; Print[doublePython[i]], {i, Range[4]}] // AbsoluteTiming
ParallelDo[Pause[1]; Print[doublePython[i]], {i, Range[4]}] // AbsoluteTiming