How do I find the closest point on another mesh to a vertex with Python?
Using closest point on mesh. 

Similarly to the answer here https://blender.stackexchange.com/a/40979/15543 code hacked together to find the closest point on mesh of    all other mesh objects in the scene to vertex[0] of the active mesh object.  Adds an Empty on the hit point.

import bpy
import bmesh
context = bpy.context
scene = context.scene

edit_obj = context.active_object
me = edit_obj.data
mesh_objects = [o for o in scene.objects if o.type == 'MESH']
bm = bmesh.new()
for sphere in mesh_objects:
    if sphere == edit_obj:
        continue
    smwi = sphere.matrix_world.inverted()

    bm.from_mesh(me)
    bm.verts.ensure_lookup_table()
    vert = bm.verts[0]
    v1 = edit_obj.matrix_world * vert.co # global face median
    local_pos = smwi * v1  # face cent in sphere local space

    (hit, loc, norm, face_index) = sphere.closest_point_on_mesh(local_pos)
    if hit:
        v2 = sphere.matrix_world * loc
        bpy.ops.object.empty_add(location=v2)
        print(sphere.name, (v2 - v1).length)
    bm.clear()