Distributes the mesh and any associated sections.
Collective on dm
dm - The original DMPlex object
overlap - The overlap of partitions, 0 is the default
sf - The PetscSF used for point distribution, or NULL if not needed
dmParallel - The distributed DMPlex object
Note: If the mesh was not distributed, the output dmParallel will be NULL.
The user can control the definition of adjacency for the mesh using DMSetAdjacency(). They should choose the combination appropriate for the function representation on the mesh.