I assume here that the Etherchannel between D1 and D2 is configured as TRUNK. (It should be, otherwise it won't work since you will be having two VLAN 10s and two VLAN 20s in different segments). I assume also that ip routing command is enabled on both switches.
If the above it correct, then use different IP addresses for each VLAN interface on each switch. For example, if VLAN 10 has a range 10.1.1.0 /24. Use say 10.1.1.1 on VLAN 10 interface on D1 and use say 10.1.1.2 on VLAN 10 interface on D2. Same goes for VLAN 20.
Ofcourse in this case you will have TWO gateways per VLAN, which you can configure PC's to use either one of them.
Another way, is to simply disable routing on one of the switches and let the other switch do the routing. You can do this using the no ip routing command.