I guess what you could do is set a variable to true when he collides with an enemy. On the step event, if this variable is true, then disable player control and move the player backwards on the appropriate axis. Use a counter to keep track of how many steps this will take, and on the last step needed, set the variable back to false.
//This could work maybe...
//This should go in the collision event
if place_meeting( x+1, y, obj_enemy)
{ x-=(Semi-Big Number) }
if place_meeting( x-1, y, obj_enemy)
{ x+=(Semi-Big Number) }
if place_meeting( x, y+1, obj_enemy)
{ y-=(Semi-Big Number) }
if place_meeting( x, y-1, obj_enemy)
{ y+=(Semi-Big Number) }
//Might have got the (signs messed up a bit, but this might work)
//This should go in the collision event
if self.x > other.x+16
{ x-=(Big Number)
if self.x < other.x-16
{ x+=(Big Number)
if self.y > other.y+16
{ y-=(Big Number)
if self.x > other.y-16
{ y+=(Big Number)