There may be times that you want to do parallel computing, but your application
doesn’t fit neatly into something like dask.array or dask.bag. In these
cases, you can interact directly with the dask schedulers. These schedulers
operate well as standalone modules.

This separation provides a release valve for complex situations and allows
advanced projects additional opportunities for parallel execution, even if
those projects have an internal representation for their computations. As dask
schedulers improve or expand to distributed memory, code written to use dask
schedulers will advance as well.