Most QuantumATK operations do collective calls and cannot be manually mpi parallelized by e.g. just splitting a list of k-points among mpi processes.
What you can do instead is that you can first do the DFT ground state in a separate calculation and store the configuration to an HDF5 file. Then you can make a separate post-processing script that calculate OrbitalMoment() for a single k-point in a loop over a subset of all the k-points you are interested in, where the subset is determined from an input argument or environment variable (e.g. job array index).
Here's an unfinished example to give you the idea:
import sys
my_process_index = int(sys.argv[1])
total_num_procs = ??
all_kpoints = numpy.array([[...], [...], ..., [...]])
my_kpoints = # logic to get local sequence of k-points here
configuration = nlread("dft_ground_state_calc.hdf5", BulkConfiguration)[-1]
orbital_moments = []
for kpoint in my_kpoints:
orb_moment_analysis = OrbitalMoment(configuration, kpoints=MonkhorstPackGrid(1, 1, 1, k_point_shift=kpoint))
orbital_moments.append(orb_moment_analysis.atomResolvedOrbitalMoment())
# Save 'orbital_moments' to file somehow, e.g. pickle
Then you can run this script either in a bash loop in a single script or submit it as multiple jobs or as a job array. Then you can collect the result files from each job and gather into a single array.