programmatically start the game engine?
My guess is that you are in edit mode. The bge will only start in object mode.

Adding this line bpy.ops.object.mode_set(mode='OBJECT') to your script will alleviate that issue.

Your edited code:

import bpy

bpy.context.scene.render.engine = 'BLENDER_GAME'

for area in bpy.context.screen.areas:
    if area.type == 'VIEW_3D':
        bpy.ops.object.mode_set(mode='OBJECT')
        override = bpy.context.copy()
        override['area'] = area
        bpy.ops.view3d.game_start()
        break