diff --git a/graph_tools/misc.py b/graph_tools/misc.py
index f8657b786bc34d57fc54353f99c9d9d23fe941be..1e66752458c2804c87de640ebd21ce64ffd927a9 100644
--- a/graph_tools/misc.py
+++ b/graph_tools/misc.py
@@ -175,10 +175,10 @@ def _init_():
       r, c = x
       return (r, c, edge_model_join(gadgets[r], gadgets[c]).eval(P, no_cache=True))
 
+    it = parmap(worker, inp, nprocs=threads, in_order=False,
+                chunksize=100, out_chunksize=100)
     m = matrix(QQ, N, N, sparse=True)
-    for r, c, v in parmap(worker, inp, nprocs=threads, in_order=False,
-        chunksize=100, out_chunksize=100):
-      m[r, c] = v
+    for r, c, v in it: m[r, c] = v
 
     return m