The automatic calibration takes place when the sensor gets configured. I don’t think changing modes causes the sensor to re-calibrate; just when it gets configured to begin with.
To force re-calibration you can unconfigure the sensor (set sensor type to NONE) and then reconfigure the sensor (set sensor type to e.g. EV3_GYRO_DPS). You might need a delay of about 250ms between unconfiguring and reconfiguring (to make sure the sensor goes into inactive mode), but I’m not sure.
Note that while configuring (auto calibrating) the sensor should remain perfectly stationary to prevent an offset.
In projects that uses ABS mode as well as DPS mode, I recommend that you use the EV3_GYRO_ABS_DPS mode rather than switching modes. The exception would be if you needed the highest communication speeds possible, where e.g. EV3_GYRO_DPS would have slightly less data to transfer (minimal difference).