Why isn't my 'frame_change' app handler working?
As we can see in the documentation at https://docs.blender.org/api/current/bpy.app.handlers.html :

import bpy
from bpy.app.handlers import persistent

@persistent
def load_handler(dummy):
    print("Load Handler:", bpy.data.filepath)

bpy.app.handlers.load_post.append(load_handler)


handlers need an argument.

You probably do not need it persistent, but you need the dummy part. This will work: 

import bpy

def my_handler(dummy):
    bpy.data.objects["Cube"].location[0] += 0.5

bpy.app.handlers.frame_change_pre.append(my_handler)