The DataParallel takes a Module as input so it can contain anything you want 
And yes what is executed is what is in the forward function of your Module.
The imbalance won’t come from the loss.backward() because it runs at the same place as the forward. So if the forward is balanced, the backward will be as well.