It was intentional because I assumed we'd always want to have a valid communicator. Allowing the communicator to be `None` will break code using `MPI.parallel`.