There are a couple ways to get around this. You can just spawn the bullet a few pixels out of the bounding box of the enemy.
However, a better solution would be to give the bullet a variable called "Creator". And when anything spawns a bullet, set its Creator variable to "self.UID". And then, when the bullet and the enemy collide, compare if bullet's Creator variable is equal to the enemy's UID, if it isn't, destroy the enemy.
The second solution is better because the enemy will sometimes still destroy itself with the first solution.