The problem is that the argument to `WaitAll` should be a list of your `ParallelSubmit` "jobs". As in the Basic Examples of the documentation for [`ParallelSubmit`](http://reference.wolfram.com/mathematica/ref/ParallelSubmit.html), after first defining your function(s) and distributing the definitions, do something like: ps = Table[ParallelSubmit[{i}, RegionPlot[f[x, y, i] > 5, {x, -10, 10}, {y, -10, 10}]], {i, 1, 2}] Followed by results = WaitAll[ps]