diff --git a/openquake/calculators/classical.py b/openquake/calculators/classical.py
index <HASH>..<HASH> 100644
--- a/openquake/calculators/classical.py
+++ b/openquake/calculators/classical.py
@@ -367,8 +367,10 @@ class ClassicalCalculator(base.HazardCalculator):
              N, hstats, oq.individual_curves, oq.max_sites_disagg)
             for t in self.sitecol.split_in_tiles(ct)]
         self.datastore.swmr_on()
-        parallel.Starmap(build_hazard, allargs,
-                         h5=self.datastore.hdf5).reduce(self.save_hazard)
+        parallel.Starmap(
+            build_hazard, allargs,
+            h5=self.datastore.hdf5, num_cores=oq.num_cores,
+        ).reduce(self.save_hazard)
 
 
 @base.calculators.add('preclassical')
Small fix in calc_stats