Why don't the magnetic dipole moments in a neutron cancel out? This may be a silly question. I thought magnetic dipoles were dependent on electric charge, so why in a neutron do the dipole moments not just cancel each other out?
 A: The magnetic moment of the neutron is not due to circulating charge. Instead it is due to the combined magnetic moments of the partons inside it.
The inside of a hadron is a ferociously complicated place, but let's take the simple model of a hadron as made up of three quarks. The quarks have a magnetic moment due to their spin. This magnetic moment is an intrinsic property of the quarks and not due to rotation in any classical sense.
So the problem is to find the lowest energy state configuration of the three dipoles in a neutron, and this turns out to be non-zero. If fact it's approximately:
$$  \mu_n = \tfrac{4}{3} \mu_d − \tfrac{1}{3} \mu_u $$
where $\mu_d$ and $\mu_u$ are the intrinsic magnetic moments of the down and up quarks respectively.
A: I am presenting this classical description for simplistic understanding of the process. 
In general (not for elementary particles) the Magnetic dipole moment is generated by a current loop. If you consider a current loop with current $I$ then the charge exiting from loop is same as charge entering into loop and hence there is no net charge on the loop. 
If the area of the loop is $A$ then magnetic dipole moment
$\mu=IA$
Hence you can understand that requirement of excess charge is not necessary for the magnetic dipole moment (even classically).
The relative strength of the magnetic force to the electric force is very small 
$F_{mag} = \frac{1}{c}F_{elect}$
If excess charge would be the necessary requirement then magnetic force would not be detected on the first place. This is just my humble opinion.
Regards,
