Use temporary storage to enable dask cluster restart
With the large number of tasks that we generate over the runtime of Midas (due to large data that we need to break down in relatively small blocks for efficient parallelization), the data structures that dask distributed uses to maintain the task graph grow to a large burden on the memory and the efficiency of the scheduler. To deal with that, we can restart the cluster at strategic points, storing the most important intermediate results in on-disk caches.