`petsc4py.init` is not idempotent, but I can't see which other package would be calling it before we do and how we should be able to protect against that. We do however have to make sure everywhere else in Firedrake `PETSc` is now imported from `core_types`.